Déclencheurs
Commandes
Checkpoints
Menus
JSON
Le menu de saisie
Nous allons ici construire un menu permettant au joueur de saisir un texte.
Construction
Commençons par créer la fonction qui englobera la création du menu pour le joueur :
public void CreatePanel(Player player) { }
Ensuite, appelons le constructeur en utilisant le type Input
:
UIPanel inputPanel = new UIPanel("Menu de saisie", UIPanel.PanelType.Input);
Nous pouvons ensuite définir le texte avec la méthode SetText()
:
inputPanel.SetText("Voici le texte affiché sur votre menu");
Et mettre un texte d’exemple dans la zone de saisie avec la méthode SetInputPlaceholder()
:
inputPanel.SetInputPlaceholder("Le texte d'exemple");
Nous pouvons également ajouter un bouton Fermer
avec la méthode AddButton()
qui fermera le menu que nous intitulerons panel
:
inputPanel.AddButton("Fermer", (panel) =>
{
player.ClosePanel(panel);
});
Et un bouton Valider
qui affichera dans la console le texte rentré dans le champs de saisie :
inputPanel.AddButton("Valider", (panel) =>
{
Debug.Log(panel.inputText);
});
Il ne nous reste plus qu’à afficher le menu au joueur avec la méthode ShowPanelUI()
:
player.ShowPanelUI(textPanel);
Résultat
Le code complet
public void CreatePanel(Player player)
{
UIPanel inputPanel = new UIPanel("Menu de saisie", UIPanel.PanelType.Input);
inputPanel.SetText("Voici le texte affiché sur votre menu");
inputPanel.AddButton("Fermer", (panel) =>
{
player.ClosePanel(panel);
});
inputPanel.AddButton("Valider", (panel) =>
{
Debug.Log(panel.inputText);
});
player.ShowPanelUI(inputPanel);
}
Une version simplifiée
public void CreatePanel(Player player)
{
UIPanel inputPanel = new UIPanel("Menu de saisie", UIPanel.PanelType.Input)
.SetText("Voici le texte affiché sur votre menu");
.AddButton("Fermer", (panel) =>
{
player.ClosePanel(panel);
})
.AddButton("Valider", (panel) =>
{
Debug.Log(panel.inputText);
});
player.ShowPanelUI(inputPanel);
}
ℹ️ Remarques
- Vous pouvez masquer le texte saisi en activant le booléenisPassword
avant d’afficher le panel :inputPanel.isPassword = true;